Multi-scale finite volume method for reservoir simulation

ABSTRACT

A multi-scale finite volume method for simulating a fine-scale geological model of subsurface reservoir is disclosed. The method includes providing a fine-scale geological model of a subsurface reservoir associated with a fine-scale grid, a coarse-scale grid, and a dual coarse-scale grid. A coarse-scale operator is constructed based on internal cells, edge cells, and node cells on the fine-scale grid that are defined by the dual coarse-scale grid. Pressure in the dual coarse-scale cells is computed using the coarse-scale operator. Pressure in the primary coarse-scale cells is computed using the computed pressure in the dual coarse-scale cells. A display is produced using the computed pressure in the primary coarse-scale cells. An iterative scheme can be applied such that the computed pressure in the primary coarse-scale cells converges to the fine-scale pressure solution and mass balance is maintained on the coarse-scale.

RELATED APPLICATIONS

The present application for patent claims the benefit of provisional patent application U.S. Ser. No. 61/077,961, filed Jul. 3, 2008, which the entirety of the application is incorporated herein by reference.

FIELD OF THE INVENTION

The present invention generally relates to simulators for characterizing subsurface reservoirs, and more particularly, to simulators that use multi-scale methods to simulate fluid flow within subsurface reservoirs.

BACKGROUND OF THE INVENTION

Natural porous media, such as subsurface reservoirs containing hydrocarbons, are typically highly heterogeneous and complex geological formations. High-resolution geological models, which often are composed of millions of grid cells, are generated to capture the detail of these reservoirs. Current reservoir simulators are encumbered by the level of detail available in the fine-scale models and direct numerical simulation of subsurface fluid flow on the fine-scale is usually not practical. Various multi-scale methods, which account for the full resolution of the fine-scale geological models, have therefore been developed to allow for efficient fluid flow simulation.

Multi-scale methods include multi-scale finite element (MSFE) methods, mixed multi-scale finite element (MMSFE) methods, and multi-scale finite volume (MSFV) methods. All of these multi-scale methods can be applied to compute approximate solutions at reduced computational cost. While each of these methods reduce the complexity of a reservoir model by incorporating the fine-scale variation of coefficients into a coarse-scale operator, each take a fundamentally different approach to constructing the coarse-scale operator.

The multi-scale finite volume (MSFV) method is based on a finite volume methodology in which the reservoir domain is partitioned into discrete sub-volumes or cells and the fluxes over the boundaries or surfaces of each cell are computed. Since the fluxes leaving a particular cell are equivalent to the fluxes entering an adjacent cell, finite volume methods are considered to be conservative. Thus, the accumulations of mass in a cell are balanced by the differences of mass influx and outflux. Accordingly, mass conservation is strictly honored by multi-scale finite volume (MSFV) methods, which can be very important in some reservoir simulation applications such as when a mass conservative fine-scale velocity field is needed for multiphase flow and transport simulations.

The multi-scale finite element (MSFE) and mixed multi-scale finite element (MMSFE) methods are based on a finite element scheme, which breaks the reservoir domain into a set of mathematical spaces commonly referred to as elements. Physical phenomenon within the domain is then represented by local functions defined over each element. These methods are not mass conservative in a strict sense due to their underlying formulation, however, some finite element methods have been able to account for this shortcoming by coupling the pressure and velocity basis functions, such as in mixed multi-scale finite element (MMSFE) methods. However, such methods are computationally expensive and typically are not practical for use in commercial reservoir simulators.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, a multi-scale method is disclosed for use in simulating a fine-scale geological model of a subsurface reservoir. The method includes providing a fine-scale geological model of a subsurface reservoir associated with a fine-scale grid having a plurality of fine-scale cells. The method includes defining a primary coarse-scale grid having a plurality of primary coarse-scale cells and a dual coarse-scale grid having a plurality of dual coarse-scale cells. The dual coarse-scale grid defines a portion of the fine-scale cells as internal, edge, and node cells. A coarse-scale operator is constructed based on the internal, edge, and node cells and pressure in the dual coarse-scale cells is computed using the coarse-scale operator. Pressure in the primary coarse-scale cells is computed using the pressure in the dual coarse-scale cells. A display is produced based on the pressure in the primary coarse-scale cells. For example, the display can include a representation of pressure distributions, velocity fields, and fluid flow within the subsurface reservoir.

The edge cells can be fine-scale cells having an interface, which is a transition between adjacent dual coarse-scale cells, traversing therethrough. The node cells can be fine-scale cells having portions of at least two interfaces traversing therethrough. The internal cells can be fine-scale cells free of an interface between adjacent dual coarse-scale cells.

An iterative scheme can be applied such that the computed pressures in the primary coarse-scale cells converge to a fine-scale pressure solution. Mass balance can also be maintained on the primary coarse-scale grid. In some embodiments, the iterative scheme modifies a coarse-scale source term and utilizes an inverse multi-scale matrix.

The pressure in the dual coarse-scale cells can be computed using a two-step process such that pressures are first computed within the node cells and then are prolongated onto the fine-scale grid. The coarse-scale operator can be constructed using a permutation matrix and a prolongation operator. The pressure in the primary coarse-scale cells can be computed using a permutation operator defined by the primary coarse-scale grid. A conservative velocity field can be computed based on the pressure in the primary coarse-scale cells.

Another aspect of the present invention includes a multi-scale method for use in simulating a fine-scale geological model of a subsurface reservoir. The method includes providing a fine-scale geological model of a subsurface reservoir associated with a fine-scale grid having a plurality of fine-scale cells. The method includes defining a primary coarse-scale grid having a plurality of primary coarse-scale cells. The method includes defining a dual coarse-scale grid having a plurality of dual coarse-scale cells such that adjacent dual coarse-scale cells form an interface that traverses some of the fine-scale cells. The fine-scale cells that are traversed by a single interface are defined as edge cells. The fine-scale cells that are traversed by portions of at least two interfaces are defined as node cells. The fine-scale cells that are free of an interface are defined as internal cells. Pressure is computed in the dual coarse-scale cells by computing pressures within the node cells and prolongating the pressures onto the fine-scale grid. Pressure in the primary coarse-scale cells is computed using the pressure in the dual coarse-scale cells. A display is produced based on the pressure in the primary coarse-scale cells. For example, the display can include a representation of pressure distributions, velocity fields, and fluid flow within the subsurface reservoir.

An iterative scheme can be applied such that the computed pressures in the primary coarse-scale cells converge to a fine-scale pressure solution. Mass balance can also be maintained on the primary coarse-scale grid. In some embodiments, the iterative scheme modifies a coarse-scale source term and utilizes an inverse multi-scale matrix.

Another aspect of the present invention includes a system for use in simulating a fine-scale geological model of a subsurface reservoir. The system includes a database, computer processor, a software program, and a visual display. The database is configured to store data such as fine-scale geological models, fine-scale grids, primary coarse-scale grids, dual coarse-scale grids, and coarse-scale operators. The computer processor is configured to receive data from the database and execute the software program. The software program includes a coarse-scale operator module and a computation module. The coarse-scale operator module constructs coarse-scale operators. The computation module computes pressure in the dual coarse-scale cells using a coarse-scale operator and computes pressure in the primary coarse-scale cells based on the pressure in the dual coarse-scale cells. In some embodiments, the computation model computes a conservative velocity field from the pressure in the primary coarse-scale cells. The visual display can display system outputs such as pressure distributions, velocity fields, and simulated fluid flow within the subsurface reservoir.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view of a two-dimensional fine-scale grid domain partitioned into internal, edge, and node point cells, in accordance with an aspect of the present invention.

FIGS. 2A and 2B are schematic views of two-dimensional fine-scale grid domain stencils illustrating mass balance between adjacent fine-scale cells. FIG. 2A illustrates the fine-scale solution. FIG. 2B illustrates the multi-scale finite volume method with reduced problem-boundary conditions, in accordance with an aspect of the present invention.

FIG. 3 is a schematic view of a two-dimensional fine-scale grid domain stencil used to construct a conservative velocity field, in accordance with an aspect of the present invention.

FIG. 4 is a flowchart illustrating steps used in a finite volume multi-scale method, in accordance with an aspect of the present invention.

FIG. 5 is a schematic diagram of a system that can perform a multi-scale finite volume method, in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the present invention describe methods that utilize multi-scale physics and are applied to simulation of fluid flow within a subterranean reservoir. In particular, the multi-scale finite volume method, taught in U.S. Pat. Nos. 6,823,297 and 7,496,488, which are herein incorporated by reference, is reformulated into a more general framework that allows for comparison with other simulation approaches such as multigrid, domain decomposition, and other multi-scale methods. As will be described in greater detail herein, permutation operators are introduced that conveniently allow for reordering unknowns and equations. This formulation simplifies the implementation of the multi-scale finite volume method into a reservoir simulator. Furthermore, the formulation can easily be integrated in a standard fine-scale solver. Embodiments of the present invention offer an optimal platform for investigating iterative approaches, which can improve the accuracy of simulation in critical cases such as reservoirs having impermeable shale layers, high anisotropy ratios, channelized media, or well-related non linearity. The presences of gravity and capillarity forces in the reservoir are accounted for and a simple iterative approach can be applied that ensures mass conservation at each iteration step.

A Natural Reordering Induced by a Dual Coarse Grid

A two-dimensional discrete boundary value problem of the form Au=r  Equation (1) in the unknown u=[u₁ u₂ . . . u_(j) . . . u_(n)]^(T), where u_(j)=u(x_(j)) is defined at a discrete set of points I_(f)={x_(j)}_(jε[1,N) _(f) _(]), can be written in compact notation u=[u(x_(j)ε=I_(f))]^(T); and with the source term r=[r_(j)]^(T). The matrix A=[a_(jk)] is symmetric and positive definite. In the following herein, the assumption is made that the points {x_(j)} are defined as the cell centers of a Cartesian grid and that a 5-point stencil is used, such that the coefficient matrix A has pentadiagonal structure. The matrix is connected with a directed graph G_(A)(I_(f),ε_(f)) consisting of a set of points, I_(f), and a set of arrows, ε_(f); the graph G_(A) is symmetric and boundary points are neglected for simplification.

FIG. 1 depicts the fundamental architecture of the multi-scale finite volume method with a fine-scale grid 100, a conforming primal coarse-scale grid 110 shown in bolded solid line, and a conforming dual coarse-scale grid 120 shown in dashed line. The fine-scale grid 100 includes of a plurality of fine-scale cells 130. The primal coarse-scale grid 110 has primal coarse-scale cells 140 and is constructed on the fine-scale grid 100 such that each primal coarse-scale cell 140 is comprised of multiple fine-scale cells 130. The dual coarse-scale grid 120, which also conforms to the fine-scale grid 100, is constructed such that each dual coarse-scale cell 150 is comprised of multiple fine-scale cells 130. For example in FIG. 1, both the primal coarse-scale cells 140 and dual coarse-scale cells 150 contain 5×5 fine-scale cells 130. One skilled in the art will appreciate that the primal coarse-scale and dual coarse-scale grids, respectively 110 and 120, can be much coarser than the underlying fine grid 100. It is also emphasized that the system and methods disclosed herein not limited to the simple grids shown in FIG. 1, as very irregular grids or decompositions can be employed, as well as, other sized grids such as the coarse-scale and dual coarse-scale cells containing 7×7 or 11×11 fine-scale cells.

If the dual coarse-scale grid 120 is constructed by connecting centrally located fine-scale cells contained within adjacent primal coarse cells 140, as shown in FIG. 1, the dual coarse-scale grid 120, {tilde over (Ω)}={{tilde over (Ω)}^(d)}_(dεN) _(D) , which consists of elements {tilde over (Ω)}^(d), naturally defines a partition of the points {x_(j)} into node cells 160, edge cells 170, and internal cells 180. In particular, transitions between adjacent dual coarse-scale cells 150 form interfaces 190 that overly and traverse the fine-scale cells. Edge cells 170 are fine-scale cells having an interface traversing therethrough. Node cells 160 are fine-scale cells having portions of at least two interfaces 190 traversing therethrough. Internal cells 180 are fine-scale cells free of an interface 190 between adjacent dual coarse-scale cells. Therefore, I _(f) =I _(n) ∪I _(e) ∪I _(i)  Equation (2) The sets I_(n), I_(e), and I_(i) consist of N_(n), N_(e), and N_(i) cells or points, respectively.

The fine-scale system given by Equation 1 can be reordered to obtain the following:

$\begin{matrix} {{\overset{\sim}{A}\overset{\sim}{u}} = {{\begin{bmatrix} {\overset{\sim}{A}}_{ii} & {\overset{\sim}{A}}_{ie} & {\overset{\sim}{A}}_{in} \\ {\overset{\sim}{A}}_{ei} & {\overset{\sim}{A}}_{ee} & {\overset{\sim}{A}}_{en} \\ {\overset{\sim}{A}}_{ni} & {\overset{\sim}{A}}_{ne} & {\overset{\sim}{A}}_{nn} \end{bmatrix}\begin{bmatrix} {\overset{\sim}{u}}_{i} \\ {\overset{\sim}{u}}_{e} \\ {\overset{\sim}{u}}_{n} \end{bmatrix}} = {\begin{bmatrix} {\overset{\sim}{r}}_{i} \\ {\overset{\sim}{r}}_{e} \\ {\overset{\sim}{r}}_{n} \end{bmatrix} = \overset{\sim}{r}}}} & {{Equation}\mspace{14mu}(3)} \end{matrix}$

where ũ_(i)=[u(x_(j)εI_(i))]^(T), ũ_(e)=[u(x_(j)εI_(e))]^(T), and ũ_(n)=[u(x_(j)εI_(n))]^(T) (Analogous definitions apply to {tilde over (r)}). The coefficient matrix is expressed as Ã=[Ã_(jk)], where the block Ã_(jk) represents the effects of the unknowns ũ_(kε{i,e,n}) on the mass balance of the points xεI_(jε{i,e,n}). Note that the reordered matrix is preferably connected to exactly the same symmetric directed graph, G_(A), as the original matrix; and the two problems are identical.

The blocks of the matrix have the following properties:

-   -   Ã_(jk)=(Ã_(kj))^(T);     -   in particular, Ã_(in)=(Ã_(ni))^(T)=[0]_(N) _(i) _(×N) _(n) is         given considering a 5-point stencil on the fine grid;     -   the blocks Ã_(ie) and Ã_(en) are rectangular matrices of sizes         N_(i)×N_(e) and N_(e)×N_(n) respectively;     -   the diagonal blocks Ã_(ii), Ã_(ee), and Ã_(nn) are square         matrices of sizes N_(i)×N_(i) N_(e)×N_(e), and N_(n)×N_(n),         respectively;     -   Ã_(nn) is diagonal;     -   if properly ordered, Ã_(ii) is block-diagonal and consists of         N_(D) pentadiagonal blocks;     -   Ã_(ee) is block-diagonal and consists of N_(E) tridiagonal         blocks, where N_(E) is the number of edges of the coarse grid         and N_(E)≠N_(e), as N_(e) represents the number of edge cells or         points;

It is useful at this point to introduce the N_(f)×N_(f) permutation matrix {tilde over (P)}. The permutation matrix is associated with the reordering, such that ũ={tilde over (P)}u  Equation (4) The permutation matrix has exactly a single entry of one appearing in each row and each column. For example, if {tilde over (P)}_(jk)=1 the element u_(k) will become the element ũ_(j) of the new vector. By recalling that permutation matrices are orthogonal, such that {tilde over (P)}^(T){tilde over (P)}={tilde over (P)}⁻¹{tilde over (P)}=1, it can be written {tilde over (P)}A{tilde over (P)}^(T){tilde over (P)}u={tilde over (P)}r. Therefore, Equation 3 can be written in the form of Ã={tilde over (P)}A{tilde over (P)} ^(T)  Equation (5) Formulation of the MSFV Method The Reordered Multi-Scale Matrix

By reordering unknowns and equations, Equation 3 remains identical to the original linear system. However, in a multi-scale method a different system is solved, which can be represented in the form of

$\begin{matrix} {{M\;\overset{\sim}{u}} = {{\begin{bmatrix} M_{ii} & M_{ie} & M_{in} \\ M_{ei} & M_{ee} & M_{en} \\ M_{ni} & M_{ne} & M_{nn} \end{bmatrix}\begin{bmatrix} {\overset{\sim}{u}}_{i} \\ {\overset{\sim}{u}}_{e} \\ {\overset{\sim}{u}}_{n} \end{bmatrix}} = {\begin{bmatrix} q_{i} \\ q_{e} \\ q_{n} \end{bmatrix} = q}}} & {{Equation}\mspace{14mu}(6)} \end{matrix}$

In the standard Multi-Scale Finite Volume (MSFV) representation, the matrix M takes the form

$\begin{matrix} {{\begin{bmatrix} {\overset{\sim}{A}}_{ii} & {\overset{\sim}{A}}_{ie} & 0 \\ 0 & M_{ee} & {\overset{\sim}{A}}_{en} \\ 0 & 0 & M_{nn} \end{bmatrix}\begin{bmatrix} {\overset{\sim}{u}}_{i} \\ {\overset{\sim}{u}}_{e} \\ {\overset{\sim}{u}}_{n} \end{bmatrix}} = \begin{bmatrix} q_{i} \\ q_{e} \\ q_{n} \end{bmatrix}} & {{Equation}\mspace{14mu}(7)} \end{matrix}$

In Equation 7, block Ã_(ie), resp. Ã_(ei), contains the active connections (internal points-edge points) that determine the pressure at the internal points or cells with respect to edge points or cells. Solving a reduced problem along the edges implies that the connections “internal point-edge point” are removed when the edge point equations are solved, hence, M_(ei)=0. However, when solving for the internal points, connections with the edges are active, such that M_(ie)=Ã_(ie)≠0.

FIGS. 2A and 2B are representations of stencils for the fine-scale solution and the multi-scale method with reduced problem-boundary conditions, respectively, that illustrate the connections between the adjacent cells. Nodal cells 160 are shaded grey and are represented by diamonds, edge cells 170 are cross-hatched and are represented by squares, and internal cells 180 maintain a white background and are represented by circles within the fine-scales cells. Arrows 190 indicate the pressure value affecting mass balance between adjacent cells. Rigorously, removing some connections requires modifying the diagonal entries of Ã_(ee) to guarantee mass balance. However, for some iteration schemes there can be in general no reason to enforce exact one dimensional mass balance along the edges if iteration is to be implemented, as it maybe useful to have M_(ee)=Ã_(ee). If M_(ee) represents a uniform stencil, Equation 7 describes the multi-scale method with linear boundary conditions.

In Equation 7 the diagonal block Ã_(nn) has been replaced by a multi-diagonal block M_(nn), which is a 7-diagonal matrix in the standard multi-scale finite volume implementation. As will be described in greater detail later herein, M_(nn) is the coarse-scale operator, which is constructed based on an appropriate “prolongation” operator. These operators are defined consistently in order to guarantee mass conservation. Analogously, {tilde over (r)} has been replaced by q. Note that q_(i)={tilde over (r)}_(i) and q_(n)={tilde over (r)}_(n), whereas in general q_(e)≠{tilde over (r)}_(e), (for instance, for the gravity term).

Since Ã and M have different graphs, the multi-scale finite volume solution will never coincide with the fine-scale solution. A multi-scale method can be viewed as consisting of two steps: a localization step and a global-coupling step. In the language of graph theory, the localization is achieved by breaking the symmetry of the directed graph: the matrix is reduced to a block upper-triangular matrix, Ã_(U)+Ã_(D) by setting Ã_(ei)=Ã_(ne)=0. The directed graph G_(Ã) _(U) _(+Ã) _(D) ⊂G_(A) is characterized by the fact that node points, do not have predecessors (Ã_(nn) is diagonal); edge points do not have predecessors in Ω_(i). The global coupling can be seen as the introduction of a new symmetric direct graph G_(M) _(nn) (I_(n),ε_(n)) Hence, G_(M)=G_(Ã) _(U) _(+Ã) _(D) +G_(M) _(nn) ≠G_(A).

Coarse Scale Operator and Prolongation Operator

The multi-scale finite volume method employs an additional coarse-scale grid to define the coarse-scale (global-coupling) problem. This coarse-scale grid or mesh, Ω={ Ω _(n)}_(nε[1,N) _(n) _(]), defines the coarse-scale control volumes and is a partition of the domain. It is useful to introduce two operators at this point: a permutation operator, P, which will be defined later, and the operator X, which is represented by a N_(n)×N_(f) matrix. Each row of X=└X_(jε[1,N) _(n) _(])┘=└X_(jk)┘ corresponds to an element Ω _(n), which yields the definition

$\begin{matrix} {\chi_{jk} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} x_{k}} \in {\overset{\_}{\Omega}}_{j}} \\ 0 & {otherwise} \end{matrix} \right.} & {{Equation}\mspace{14mu}(8)} \end{matrix}$ When applied to a vector of size N_(f), this operator performs a restriction and returns a vector of size N_(n), whose entries are the sum of the values assumed by the original vector in the corresponding coarse-scale elements. If the set of independent vectors {e^(j)}_(jε[1,N) _(f) _(]) is considered such that e^(j)=[e_(k) ^(j)=δ_(jk)]^(T) (hence, they are a base of the vector space), the rows of the operator χ can be written as

$\begin{matrix} {\chi_{j} = \left( {\sum\limits_{k \in {\{{k|{x_{k} \in {\overset{\_}{\Omega}}_{j}}}\}}}^{\;}{\mathbb{e}}^{k}} \right)^{T}} & {{Equation}\mspace{14mu}(9)} \end{matrix}$

Prolongation and the coarse-scale operators can now be constructed. M is block upper triangular, such that Eq. 7 can be solved by a backward-substitution method, which yields ũ _(n)=(M _(nn))⁻¹ q _(n)  Equation (10) ũ _(e)=(M _(ee))⁻¹(q _(e) −Ã _(en) ũ _(n))  Equation (11) ũ _(i)=(M _(ii))⁻¹(q _(i) −Ã _(ie) ũ _(e))  Equation (12) which can be expressed in matrix form as

$\begin{matrix} {\begin{bmatrix} {\overset{\sim}{u}}_{i} \\ {\overset{\sim}{u}}_{e} \\ {\overset{\sim}{u}}_{n} \end{bmatrix} = {{\begin{bmatrix} {\left( {\overset{\sim}{A}}_{ii} \right)^{- 1}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}{\overset{\sim}{A}}_{en}} \\ {{- \left( M_{ee} \right)^{- 1}}{\overset{\sim}{A}}_{en}} \\ I_{nn} \end{bmatrix}\left( M_{nn} \right)^{- 1}q_{n}} + {\quad\begin{bmatrix} {{\left( {\overset{\sim}{A}}_{ii} \right)^{- 1}q_{i}} - {\left( {\overset{\sim}{A}}_{ii} \right)^{- 1}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}q_{e}}} \\ {\left( M_{ee} \right)^{- 1}q_{e}} \\ 0 \end{bmatrix}}}} & {{Equation}\mspace{14mu}(13)} \end{matrix}$ where I_(nn) is the N_(n)×N_(n) identity matrix, and M_(ii)=Ã_(ii) has been used. This problem can be split in two steps: first, a coarse scale problem is solved to compute the coarse-scale pressures represented by the node cell, which can be performed using M _(nn) ũ _(n) =q _(n)  Equation (14) The solution is then prolongated on the fine grid using ũ=Bũ _(n) +Cq  Equation (15) where the N_(f)×N_(n) prolongation operator is defined as

$\begin{matrix} {B = \begin{bmatrix} {\left( {\overset{\sim}{A}}_{ii} \right)^{- 1}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}{\overset{\sim}{A}}_{en}} \\ {{- \left( M_{ee} \right)^{- 1}}{\overset{\sim}{A}}_{en}} \\ I_{nn} \end{bmatrix}} & {{Equation}\mspace{14mu}(16)} \end{matrix}$ and the N_(f)×N_(f) matrix is defined as

$\begin{matrix} {C = \begin{bmatrix} \left( {\overset{\sim}{A}}_{ii} \right)^{- 1} & {{- \left( {\overset{\sim}{A}}_{ii} \right)^{- 1}}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}} & 0 \\ 0 & \left( M_{ee} \right)^{- 1} & 0 \\ 0 & 0 & 0 \end{bmatrix}} & {{Equation}\mspace{14mu}(17)} \end{matrix}$ The term q_(n) does not contribute to Cq because the last column of C consists of zeros only. However, while q_(n) does not appear in Equation 15 directly, it does appear indirectly through Equation 14.

The inverse multi-scale matrix, (M)⁻¹, can be readily derived by defining the restriction operator, R, for the unknown ũ, such that

$\begin{matrix} {{\overset{\sim}{u}}_{n} = {{R\;\overset{\sim}{u}} = {\left\lbrack {0\mspace{14mu} 0\mspace{14mu} I_{nn}} \right\rbrack\begin{bmatrix} {\overset{\sim}{u}}_{i} \\ {\overset{\sim}{u}}_{e} \\ {\overset{\sim}{u}}_{n} \end{bmatrix}}}} & {{Equation}\mspace{14mu}(18)} \end{matrix}$ This corresponds to the assumption that the coarse pressures are the fine-scale pressures at the nodes. Then, ũ=(M_(nn))⁻¹Rq can be written in Equation 15 and the inverse multi-scale matrix can be expressed as (M)⁻¹ =B(M _(nn))⁻¹ R+C  Equation (19) or explicitly as

$\begin{matrix} {(M)^{- 1} = \begin{bmatrix} \left( {\overset{\sim}{A}}_{ii} \right)^{- 1} & {{- \left( {\overset{\sim}{A}}_{ii} \right)^{- 1}}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}} & {\left( {\overset{\sim}{A}}_{ii} \right)^{- 1}{{\overset{\sim}{A}}_{ie}\left( M_{ee} \right)}^{- 1}{A_{en}\left( M_{nn} \right)}^{- 1}} \\ 0 & \left( M_{ee} \right)^{- 1} & {{- \left( M_{ee} \right)^{- 1}}{A_{en}\left( M_{nn} \right)}^{- 1}} \\ 0 & 0 & \left( M_{nn} \right)^{- 1} \end{bmatrix}} & {{Equation}\mspace{14mu}(20)} \end{matrix}$

A coarse-scale problem that satisfies the coarse-scale mass balance can be obtained by substituting Equation 15 into Equation 3 and applying the operator χ, which yields χÃũ=χÃBũ _(n) +χÃCq=χ{tilde over (r)}  Equation (21) from which the coarse scale operator can be deduced as (M _(nn))=χÃB  Equation (22) and the coarse-scale right hand side as q _(n) =χ{tilde over (r)}-−χÃCq  Equation (23) The effect of the second term on the right hand side of the coarse scale equation is equivalent to the coarse-scale effect of the correction function. The Relationship Between the Prolongation Operator and the Basis Functions

The operator χ, which has been defined in the previous section, can be seen as a restriction operator, which reduces the fine scale problem to a coarse problem. This operator is the discrete analogous of the control-volume integral operator used to derive the finite volume discretization. Recall that the restriction operator, R, for the unknown ũ is much simpler.

By defining a subset {e^(n)}={e^(n)=Re^(j)}={e^(j)|x_(j)εI_(n)}⊂{e^(j)}, and recalling the definition of the basis function relative to the node j, given by {tilde over (φ)}_(j), it can be written

$\begin{matrix} {{\overset{\sim}{\varphi}}_{n} = {{Be}^{n} = {{B\begin{bmatrix} 0 \\ \ldots \\ {e_{n}^{n} = 1} \\ \ldots \\ 0 \end{bmatrix}} = {{\sum\limits_{k \in I_{n}}{B_{jk}e_{k}^{n}}} = {{\sum\limits_{k \in I_{n}}{B_{jk}\delta_{kn}}} = B_{jn}}}}}} & {{Equation}\mspace{14mu}(24)} \end{matrix}$ where n is a specific index. From Equation 24 it appears that the columns of B are the basis functions of the multi-scale finite volume method. For comparison with the standard multi-scale finite volume implementation, note that all four basis functions that are adjacent to the node x_(j) ^(n) have been simultaneously defined. An accurate description of the source term, {tilde over (r)}, requires the definition of the correction function

$\begin{matrix} {{\overset{\sim}{\varphi}}_{*} = {{{B\begin{bmatrix} 0 \\ \ldots \\ 0 \end{bmatrix}} + {Cq}} = {Cq}}} & {{Equation}\mspace{14mu}(25)} \end{matrix}$ which is described in patent application U.S. Ser. No. 11/763,109, which is herein incorporated by reference. The original implementation of the multi-scale finite volume method without correction function assumes q^(i)=0 and q^(e)=0 to describe the affects of the right-hand side, whereas q^(n)=χ{tilde over (r)}, which yields Cq=0. This strong approximation prevents the multi-scale finite volume method without correction function from properly accounting for the presence of non-multi-linear effects given by the right hand side. The Conservative Velocity Field

In the multi-scale finite volume method a conservative velocity field is constructed by solving a set of local pressure problems on the volumes defined by the primary partition, that is in each coarse cell, Ω _(i). From this problem a new pressure, ν, is obtained, which is used to compute a conservative velocity field. In order to reformulate this step of the algorithm, it is useful to define the permutation operator P induced by the primary partition. This permutation operator reorders unknowns and equations of the linear system, given by Equation 1, such that the resulting matrix, Ā= PA P ^(T), has a pentadiagonal block structure. Each diagonal block correspond to a coarse cell Ω _(i). The off diagonal blocks represent the mutual effect between adjacent blocks. Accordingly, they contain the transmissibilities between nodes belonging to two distinct, but adjacent blocks. By defining D=diag(Ā), which is the block diagonal part of the reordered matrix, the fine-scale problem can be rewritten in the form D ν+(Ā− D ) ν= r   Equation (26) where ν= Pν and r= Pr have been defined. In the standard multi-scale finite volume algorithm the second term on the left hand side is approximate as (Ā−D) ν≈(Ā−D) P{tilde over (P)}^(T)ũ, where ũ is the solution of Mũ={tilde over (q)}, defined previously herein. Therefore, this yields D ν={tilde over (r)}−(Ā−D) P{tilde over (P)} ^(T) ũ  Equation (27) Only fluxes across the boundaries of the primary grid contribute to the second term on the right hand side.

FIG. 3 is an illustration of the stencils used for the construction of the conservative velocity field. An arrow from one cell to the adjacent cell indicates that the pressure value of the one cell affects the mass balance of the adjacent cell.

Some Considerations on the Implementation

Once the operators {tilde over (P)}, χ, and P are constructed, the abstract formulation introduced allows implementing the multi-scale finite volume method at a very high programming level if a matrix algebra is defined. After the blocks of the matrix Ã={tilde over (P)}A{tilde over (P)}^(T) have been identified, B and C can be easily obtained and the coarse-scale operator is readily defined as M=χ{tilde over (P)}A{tilde over (P)}^(T) B. Preferably, this can be applied “as it is” to any linear system Au=r, regardless to the described physical processes. As will be appreciated by those skilled in the art, the accuracy of the method will depend on the quality of the localization assumption.

FIG. 4 illustrates the following steps of a multi-scale finite volume method 200 that can be used for simulation of fluid flow in a subsurface reservoir. Given Au=r, Step 210 includes defining a primary coarse-scale grid. As previously described, primary coarse-scale grid has a plurality of primary coarse-scale cells and is coarser than the fine-scale grid of the geological model of the subsurface reservoir. Permutation operator P, which is induced by the primary coarse grid, can be constructed once the primary coarse-scale grid has been defined. Step 220 includes defining a dual coarse grid. Dual coarse-scale grid has a plurality of dual coarse-scale cells and is also coarser than the fine-scale grid. Dual coarse-scale grid is typically offset from the primary coarse-scale grid. Permutation matrix {tilde over (P)} and prolongation operator χ, which are associated with dual coarse-scale grid, can be constructed once the dual coarse-scale grid has been defined. The dual coarse-scale pressure, u, which is the pressure in the dual coarse-scale cells, is computed in step 230. Knowing Ã={tilde over (P)}A{tilde over (P)}^(T), B and C may be constructed using equations 16 and 17 to derive the coarse scale operator M_(nn)=χÃB and q_(n)=χ{tilde over (P)}r−χÃCq. M_(nn)ũ_(n)=q_(n) may then be solved and the dual coarse-scale pressure u may be obtained using ũ=Bũ_(n)+Cq and u={tilde over (P)}^(T)ũ. The conservative pressure ν, which is the pressure in the primary coarse-scale cells, is calculated in step 240. Using Ā= PA P ^(T) and D=diag(Ā), the equation D ν= Pr−(Ā−D) Pu can be solved. The conservative pressure ν can then be computed using the relation ν= P ^(T){tilde over (ν)}. Once the conservative pressure ν is obtained the fluxes may be computed, as shown in step 250. This step can include constructing conservative velocity fields, as previously described, as well as solving transport problems to construct saturation fields.

This optimization, both in terms of memory and speed, calls for an appropriate data structure that enables one to efficiently store large sparse matrices (making abundant use of pointers to reorder matrix and vectors), to take advantage of the block (diagonal) structure of the matrices when applying linear solvers, and to easily implement adaptivity.

Introduction of Iterative Methods

The original fine-scale problem has been split in a set of localized problems by forcing the matrix M to be upper-triangular. This approximation is good if the element of Ã^(ei) are small, which is not always guaranteed. For example, for anisotropic problems Ã^(ei) becomes dominant if the permeability is larger in the direction transversal to the edge. Therefore, iterative procedures can be utilized to improve the accuracy of the multi-scale finite volume solution and achieve fine-scale convergence.

A Simple Iterative Method

As a simple example, consider the linear iterative scheme of the form ũ ^(ν) =ũ ^(ν−1)+ω(M)⁻¹({tilde over (r)}−Ãũ ^(ν−1))  Equation (28) which can be reformulated in terms of increments, δ^(ν):=ũ^(ν)−ũ^(ν−1) and residuals, ε^(ν):={tilde over (r)}−Ãu^(ν), which can be given as δ^(ν)=ω(M)⁻¹ε^(ν−1)  Equation (29) This linear iteration is convergent for ωε(0, 2/ρ(M⁻¹Ã)), where ρ is the spectral radius, and has optimal convergence rate when ω=2(λ_(min)(M⁻¹Ã)+λ_(max)(M⁻¹Ã))⁻¹, where λ_(min)(M⁻¹Ã) is the minimum eigenvalue and λ_(max)(M⁻¹Ã) is the maximum eigenvalue. In this iterative procedure, the inverse multi-scale finite volume matrix is regarded as a pre-conditioner, whereas Equation 28 is called smoother. However, this simple procedure has the drawback of not preserving the advantages of M, which is mainly the coarse-scale mass conservation.

Preferably, iterative procedures should satisfy the following properties:

Property 1—Fine-scale convergence: {tilde over (r)}−Ãũ^(ν)→0 if ν→∞;

Property 2—Coarse-scale mass balance on the primal grid: χ({tilde over (r)}−Ãũ^(ν))=0, ∀ν.

By applying an iterative scheme, the following can be derived ε^(ν)=({tilde over (r)}−Ãũ ^(ν))=(I−ωÃ(M)⁻¹)^(ν)({tilde over (r)}−Ãũ ⁰)  Equation (30) where ũ⁰ is the solution of the multi-scale finite volume problem, ũ⁰=(M)⁻¹q. Although ũ⁰ satisfies coarse-scale mass balance, in general χε^(ν)≠0 for ν≠0 and ν≠∞ are given. An Iterative Scheme Conserving Mass

To obtain an iterative scheme that satisfies coarse-scale mass balance, the coarse-scale problem can be appropriately modified. Specifically, the coarse-problem source term, which can be readily derived by replacing q by q^(ν−1)=q+ε^(ν−1), can be modified. Therefore at iteration ν, the prolongated solution yields ũ ^(ν) =Bũ _(n) ^(ν) +Cq ^(ν−1)  Equation (31) where ũ_(n) ^(ν) is solution of the coarse-scale problem M _(nn)ũ_(n) ^(ν) =q _(n) ^(ν−1)  Equation (32)

Again a solution satisfying coarse-scale mass balance is obtained by substituting the prolongation solution, given by Equation 31, into the fine scale problem, given by Equation 3, and applying the operator χ. This yields χÃũ ^(ν) =χÃBũ _(n) ^(ν) +χÃCq ^(ν−1) =χ{tilde over (r)}  Equation (33) or q _(n) ^(ν−1) =χ{tilde over (r)}−χÃCq ^(ν−1) =q _(n) χÃCε ^(ν−1)  Equation (34) Therefore, the unknown ũ^(ν) is solution of the problem Mũ ^(ν) =q ^(ν−1) =q+Eε ^(ν−1)  Equation (35) where the matrix M is given by Equation 7 with M_(nn)=χÃB and the following is defined

$\begin{matrix} {E = {\begin{bmatrix} I_{ii} & 0 & 0 \\ 0 & I_{ee} & 0 \\ 0 & 0 & 0 \end{bmatrix} - {\quad{{\begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ \chi_{ni} & \chi_{ne} & \chi_{nn} \end{bmatrix}\overset{\sim}{A}C} = \begin{bmatrix} \left\lbrack I_{ii} \right. & 0 & \left. 0 \right\rbrack \\ \left\lbrack 0 \right. & I_{ee} & \left. 0 \right\rbrack \\ \; & {{- \chi}\;\overset{\sim}{A}C} & \; \end{bmatrix}}}}} & {{Equation}\mspace{14mu}(36)} \end{matrix}$ The solution of Equation 35 satisfies the Property 2 by construction. This can also be verified by considering

$\begin{matrix} {{\chi\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)} = {{\chi\left( {\overset{\sim}{r} - {{\overset{\sim}{A}(M)}^{- 1}q^{v - 1}}} \right)} =}} & {\mspace{76mu}{{Equation}\mspace{14mu}(37)}} \\ {\chi\left( {\overset{\sim}{r} - {{\overset{\sim}{A}\left( {{{B\left( M_{nn} \right)}^{- 1}R} - C} \right)}q^{v - 1}}} \right)} & \; \\ {= {{{\chi\;\overset{\sim}{r}} - {\chi\overset{\sim}{A}{Cq}^{v - 1}} - {{M_{nn}\left( M_{nn} \right)}^{- 1}{Rq}^{v - 1}}} =}} & {\mspace{76mu}{{Equation}\mspace{14mu}(38)}} \\ {{q_{n}^{v - 1} - q_{n}^{v - 1}} = 0} & \; \end{matrix}$

However, it does not converge to the fine-scale solution and Property 1 is not satisfied. Indeed, by adding and subtracting Mu^(ν−1) on the right hand side of Equation 35 and rearranging one can write δ^(ν)=−(M)⁻¹ EÃδ ^(ν−1)  Equation (39) which shows that δ^(ν)→0 does not imply ε^(ν)→0. Moreover, from Equation 35, it is observed that zero residual implies ũ^(ν)=ũ⁰=(M)⁻¹q. A Converging, Mass-Conserving Scheme

Considering the following iterative scheme ũ ^(ν) =ũ ^(ν−1)+ω(M)⁻¹ E({tilde over (r)}−Ãũ ^(ν−1))  Equation (40) which can be reformulated in terms of increments and residuals as δ^(ν)=ω(M)⁻¹ Eε ^(ν−1)  Equation (41) It is easy to show that this scheme satisfies Property 2:

$\begin{matrix} \begin{matrix} {{\chi\left( {\overset{\sim}{r} - {\overset{\sim}{A}\;{\overset{\sim}{u}}^{v}}} \right)} = {{\chi\left( {I - {\omega\;{\overset{\sim}{A}(M)}^{- 1}E}} \right)}\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)}} \\ {= \left( {\chi - {{\omega\left( {{\chi\;\overset{\sim}{A}{B\left( M_{nn} \right)}^{- 1}R} - {\chi\;\overset{\sim}{A}C}} \right)}E}} \right)} \\ {\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)} \\ {= {\left( {\chi - {\omega\;{RE}} - {\omega\;\chi\;\overset{\sim}{A}C}} \right)\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)}} \\ {= {\left( {\chi - {\omega\left( {{- \chi}\;\overset{\sim}{A}C} \right)} - {\omega\;\chi\;\overset{\sim}{A}C}} \right)\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)}} \\ {= {{\chi\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{v - 1}}} \right)} = {{\chi\left( {\overset{\sim}{r} - {\overset{\sim}{A}{\overset{\sim}{u}}^{0}}} \right)} = 0}}} \end{matrix} & \begin{matrix} \begin{matrix} {{Equation}\mspace{14mu}(42)} \\ {{Equation}\mspace{14mu}(43)} \end{matrix} \\ \begin{matrix} \; \\ \begin{matrix} \; \\ \begin{matrix} \begin{matrix} \begin{matrix} {{Equation}\mspace{14mu}(44)} \\ {{Equation}\mspace{14mu}(45)} \end{matrix} \\ \; \end{matrix} \\ {{Equation}\mspace{14mu}(46)} \end{matrix} \end{matrix} \end{matrix} \end{matrix} \end{matrix}$ where CE=C and RE=−χÃC have been used.

Moreover, the iterative scheme converges, if and only if, ũ^(ν) is solution of the original problem. If ũ^(ν)=ũ^(ν−1), it follows immediately that E({tilde over (r)}−Ãũ^(ν))=0, hence, by recalling the definition of E, given in Equation 36, it yields {tilde over (r)} _(i) −Ã _(ii) ũ _(i) ^(ν) −Ã _(ie) ũ _(e) ^(ν)=0  Equation (47) {tilde over (r)} _(e) −Ã _(ei) ũ _(i) ^(ν) −Ã _(ee) ũ _(e) ^(ν) −Ã _(en) ũ _(n) ^(ν)=0  Equation (48) −χÃC({tilde over (r)}−Ãũ ^(ν))=0  Equation (49)

Since the iterative scheme satisfies Property 2, such that χ({tilde over (r)}−Ãũ^(ν))=0, it can be written

$\begin{matrix} {0 = {{\left\lbrack {\chi_{ni}\mspace{14mu}\chi_{ne}\mspace{14mu}\chi_{nn}} \right\rbrack\begin{bmatrix} {{\overset{\sim}{r}}_{i} - {{\overset{\sim}{A}}_{ii}{\overset{\sim}{u}}_{i}^{v}} - {{\overset{\sim}{A}}_{ie}{\overset{\sim}{u}}_{e}^{v}}} \\ {{\overset{\sim}{r}}_{e} - {{\overset{\sim}{A}}_{ei}{\overset{\sim}{u}}_{i}^{v}} - {{\overset{\sim}{A}}_{ee}{\overset{\sim}{u}}_{e}^{v}} - {{\overset{\sim}{A}}_{en}{\overset{\sim}{u}}_{n}^{v}}} \\ {{\overset{\sim}{r}}_{n} - {{\overset{\sim}{A}}_{ne}{\overset{\sim}{u}}_{e}^{v}} - {{\overset{\sim}{A}}_{nn}{\overset{\sim}{u}}_{n}^{v}}} \end{bmatrix}} = {{\overset{\sim}{r}}_{n} - {{\overset{\sim}{A}}_{ne}{\overset{\sim}{u}}_{e}^{v}} - {{\overset{\sim}{A}}_{nn}{\overset{\sim}{u}}_{n}^{v}}}}} & {{Equation}\mspace{14mu}(50)} \end{matrix}$ where Equations 47 and 48 have been used, along with χ_(nn)=I_(nn) (note that Ã_(in)=0 and Ã_(ni)=0). Equations 47-49 and 50 imply that ({tilde over (r)}−Ãũ^(ν))=0, hence, ũ^(ν) is solution of the fine-scale problem. On the other hand, if Ãũ^(ν)={tilde over (r)} it is trivial to show that ũ^(ν)=ũ^(ν−1). Therefore, Property 1 is satisfied. Moreover, by analogy with Equation 28, this linear iteration is convergent for ωε(0, 2/ρ(M⁻¹EÃ)) and has optimal convergence rate when ω=2(λ_(min)(M⁻¹EÃ)+λ_(max)(M⁻¹EÃ))⁻¹.

Therefore, starting from an operator-based formulation of the multi-scale finite volume method, a mass conservative iterative scheme has been derived that can improve the accuracy of the method, eventually, converging to the fine-scale solution. Matrix reordering allows for a very compact formulation of the multi-scale finite volume method, which can be programmed at a very high level, once the reordering operators are defined. An efficient and optimized method preferably relies on an appropriate data structure that enables one to efficiently store sparse matrices, to take advantage of the block-diagonal structure when applying linear solvers, and to implement adaptivity.

FIG. 5 illustrates a system 300 that can be used in simulating a fine-scale geological model of a subsurface reservoir as described by the multi-scale finite volume method above. System 300 includes user interface 310, such that an operator can actively input information and review operations of system 300. User interface 310 can be any means in which a person is capable of interacting with system 300 such as a keyboard, mouse, or touch-screen display. Input that is entered into system 300 through user interface 310 can be stored in a database 320. Additionally, any information generated by system 300 can also be stored in database 320. For example, database 320 can store user-defined parameters, as well as, system generated computed solutions. Accordingly, geological models 321, coarse-scale operators 323, computed pressure solutions 325, and computed velocity field solutions 327, are all examples of information that can be stored in database 320.

System 300 includes software 330 that is stored on a processor readable medium. Current examples of a processor readable medium include, but are not limited to, an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable programmable ROM (EPROM), a floppy diskette, a compact disk (CD-ROM), an optical disk, a hard disk, and a fiber optic medium. As will be described more fully herein, software 330 can include a plurality of modules for performing system tasks such as performing the multi-scale finite volume method previously described herein. Processor 340 interprets instructions to execute software 330, as well as, generates automatic instructions to execute software for system 300 responsive to predetermined conditions. Instructions from both user interface 310 and software 330 are processed by processor 340 for operation of system 300. In some embodiments, a plurality of processors can be utilized such that system operations can be executed more rapidly.

Examples of modules for software 330 include, but are not limited to, coarse-scale operator module 331 and computation module 333. Coarse-scale operator module 331 is capable of constructing coarse-scale operator 323. Computation module 333 is capable of computing pressure in the dual coarse-scale cells responsive to coarse-scale operator 323. Computation module 333 is also capable of computing pressure in the primary coarse-scale cells responsive to the pressure in the dual coarse-scale cells. Pressures in the dual coarse-scale cells and primary coarse-scale cells are examples of computed pressures 325 that can be stored in database 320. In some embodiments, computation module 333 computes a conservative velocity field from the pressure in the primary coarse-scale cells. The conservative velocity field is an example of a computed velocity field 327 that can be stored in database 320.

In certain embodiments, system 300 can include reporting unit 350 to provide information to the operator or to other systems (not shown). For example, reporting unit 350 can be a printer, display screen, or a data storage device. However, it should be understood that system 300 need not include reporting unit 350, and alternatively user interface 310 can be utilized for reporting information of system 300 to the operator.

Communication between any components of system 300, such as user interface 310, database 320, software 330, processor 340 and reporting unit 350, can be transferred over a communications network 360. Communications network 360 can be any means that allows for information transfer. Examples of such a communications network 360 presently include, but are not limited to, a switch within a computer, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), and a global area network (GAN). Communications network 360 can also include any hardware technology used to connect the individual devices in the network, such as an optical cable or wireless radio frequency.

In operation, an operator initiates software 330, through user interface 310, to perform the multi-scale finite volume method. Outputs from each software module, such as coarse-scale operator module 331 and computation module 333, can be stored in database 320. Software 330 utilizes coarse-scale operator module 331 to construct coarse-scale operator 323. Once the coarse-scale operator 323 is constructed, the computation module 333 can retrieve coarse-scale operator 323 from either database 320 or directly from coarse-scale operator module 331 and compute the pressure in the dual coarse-scale cells. Computation module 333 also computes the pressure in the primary coarse-scale cells based on the pressure in the dual coarse-scale cells. A visual display can be produced using the pressure in the primary coarse-scale cells. For example, pressure distributions, velocity fields, or fluid flow within the reservoir can be displayed.

While in the foregoing specification this invention has been described in relation to certain preferred embodiments thereof, and many details have been set forth for purpose of illustration, it will be apparent to those skilled in the art that the invention is susceptible to alteration and that certain other details described herein can vary considerably without departing from the basic principles of the invention. 

What is claimed is:
 1. A multi-scale finite volume method for use in simulating a fine-scale geological model of a subsurface reservoir, the method comprising: (a) providing a fine-scale geological model of a subsurface reservoir associated with a fine-scale grid having a plurality of fine-scale cells; (b) defining a primary coarse-scale grid having a plurality of primary coarse-scale cells; (c) defining a dual coarse-scale grid having a plurality of dual coarse-scale cells, the dual coarse-scale grid defining a portion of the fine-scale cells as internal cells, edge cells, and node cells; (d) constructing a block upper triangular multi-scale matrix where blocks of the block upper triangular multi-scale matrix are ordered responsive to the internal cells, edge cells, and node cells; (e) computing pressure in the dual coarse-scale cells using a coarse-scale operator, the coarse-scale operator being a multi-diagonal block of the block upper triangular multi-scale matrix; (f) computing pressure in the primary coarse-scale cells responsive to the pressure in the dual coarse-scale cells; (g) producing a display responsive to the pressure in the primary coarse-scale cells; and wherein in steps (e) and (f) an iterative scheme is applied that modifies a coarse-scale source term and utilizes an inverse multi-scale matrix.
 2. The method of claim 1, wherein the edge cells are fine-scale cells having an interface traversing therethrough, the interface being a transition between adjacent dual coarse-scale cells.
 3. The method of claim 2, wherein the node cells are edge cells having portions of at least two interfaces traversing therethrough.
 4. The method of claim 1, wherein the node cells are fine-scale cells having portions of at least two interfaces traversing therethrough, the at least two interfaces being transitions between adjacent dual coarse-scale cells.
 5. The method of claim 1, wherein the internal cells are fine-scale cells free of an interface between adjacent dual coarse-scale cells.
 6. The method of claim 1, wherein the computed pressures in the primary coarse-scale cells converge to a fine-scale pressure solution.
 7. The method of claim 1, wherein mass balance is maintained on the primary coarse-scale grid.
 8. The method of claim 1, wherein in step (e) the computing pressure in the dual coarse-scale cells using the coarse-scale operator comprises: computing pressures within the node cells; and prolongating the pressures within the node cells onto the fine-scale grid.
 9. The method of claim 1, wherein a conservative velocity field is computed responsive to the pressure in the primary coarse-scale cells.
 10. The method of claim 1, wherein in step (d) the coarse-scale operator is constructed using a permutation matrix and a prolongation operator.
 11. The method of claim 1, wherein in step (f) the pressure in the primary coarse-scale cells is computed using a permutation operator defined by the primary coarse-scale grid.
 12. The method of claim 1, wherein in step (g) the display comprises a representation of one of the following selected from the group consisting of pressure distributions, velocity fields, and fluid flow within the subsurface reservoir.
 13. A multi-scale finite volume method for use in simulating a fine-scale geological model of a subsurface reservoir, the method comprising: (a) providing a fine-scale geological model of a subsurface reservoir associated with a fine-scale grid having a plurality of fine-scale cells; (b) defining a primary coarse-scale grid having a plurality of primary coarse-scale cells; (c) defining a dual coarse-scale grid having a plurality of dual coarse-scale cells such that adjacent dual coarse-scale cells form an interface that traverses some of the fine-scale cells, the fine-scale cells that are traversed by a single interface are defined as edge cells, the fine-scale cells that are traversed by portions of at least two interfaces are defined as node cells, and the fine-scale cells that are free of the interface are defined as internal cells; (d) computing pressure in the dual coarse-scale cells by: (i) computing pressures within the node cells using a coarse-scale operator, the coarse-scale operator being a multi-diagonal block of a block upper triangular multi-scale matrix; and (ii) prolongating the pressures within the node cells onto the fine-scale grid; (e) computing pressure in the primary coarse-scale cells responsive to the pressure in the dual coarse-scale cells; (f) producing a display responsive to the pressure in the primary coarse-scale cells; and wherein in steps (d) and (e) an iterative scheme is applied that modifies a coarse-scale source term and utilizes an inverse multi-scale matrix.
 14. The method of claim 13, wherein the computed pressures in the primary coarse-scale cells converge to a fine-scale pressure solution and mass balance is maintained on the primary coarse-scale grid.
 15. The method of claim 13, wherein the display in step (f) comprises a representation of one of the following selected from the group consisting of pressure distributions, velocity fields, and fluid flow within the subsurface reservoir.
 16. A system for use in simulating a fine-scale geological model of a subsurface reservoir, the system comprising: a database configured to store data comprising a fine-scale geological model of a subsurface reservoir, a fine-scale grid having a plurality of fine-scale cells, a primary coarse-scale grid having a plurality of primary coarse-scale cells, a dual coarse-scale grid having a plurality of dual coarse-scale cells, and a coarse-scale operator; a computer processor configured to receive the stored data from the database, and to execute software responsive to the stored data; a software program executable on the computer processor, the software program comprising: (a) a coarse-scale operator module that constructs the coarse-scale operator, the coarse-scale operator being a multi-diagonal block of a block upper triangular multi-scale matrix; and (b) a computation module that computes pressure in the dual coarse-scale cells responsive to the coarse-scale operator, computes pressure in the primary coarse-scale cells responsive to the pressure in the dual coarse-scale cells, and applies an iterative scheme that modifies a coarse-scale source term and utilizes an inverse multi-scale matrix; and a visual display for displaying system outputs.
 17. The system of claim 16, wherein the coarse-scale operator module constructs the coarse-scale operator responsive to internal cells, edge cells, and node cells defined on the fine-scale grid by the dual coarse-scale grid.
 18. The system of claim 16, wherein the computation module computes pressure in the dual coarse-scale cells by computing pressures within node cells and prolongating the pressures within the node cells onto the fine-scale grid.
 19. The system of claim 16, wherein the computation module further computes a conservative velocity field responsive to the pressure in the primary coarse-scale cells. 